﻿using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;

public partial class MessageScene : Scene
{
	public string DatetimeToString(long dateGap)
	{
		DateTime startDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
		DateTime targetDate = startDate.AddMilliseconds(dateGap).ToLocalTime();
		return string.Format(Localization.Get("uiMailboxArrivalDate"), targetDate.Month.ToString("D2"), targetDate.Day.ToString("D2"), targetDate.Hour.ToString(), targetDate.Minute.ToString()); // {0}.{1} {2}시 {3}분
	}
	
	public string DatetimeToFomattedString(long dateGap)
	{
		DateTime nowDate = DateTime.Now;
		
		DateTime startDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); 
		DateTime targetDate = startDate.AddMilliseconds(dateGap).ToLocalTime();
		TimeSpan ts = targetDate.AddDays(7) - nowDate;

		if (ts.Days >= 1)
		{
			return string.Format(Localization.Get("uiMailboxDeletedInD"), ts.Days.ToString()); // {0}일 남음
		}
		else if (ts.Hours > 0)
		{
			return string.Format(Localization.Get("uiMailboxDeletedInH"),  ts.Hours.ToString()); // {0}시 남음
		}
		else
		{
			return string.Format(Localization.Get("uiMailboxDeletedInM"),  ts.Minutes.ToString()); // {0}분 남음
		}
	}

	string GetRewardMessageTemplateByMsgCategory(int msgCategory)
	{
		/*
		// Message Template
		uiMailboxRewardText1	--> 없음
		uiMailboxRewardText2	[보상] {0} 지역 파견 완료 보상입니다. {1}을 획득하였습니다.
		uiMailboxRewardText3	[보상] {0} 지역 확장 보상입니다. {1}을 획득하였습니다.
		uiMailboxRewardText4	--> 없음
		uiMailboxRewardText5	[침략] 침략 성공 보상입니다. {0}을 획득하였습니다.
		uiMailboxRewardText6	[보상] {0} 지역 파견 완료 보상입니다. {1}을 획득하였습니다.
		uiMailboxRewardText7	[보스] {0}을 처치 후 참여보상으로, {1}을 획득하였습니다.
		uiMailboxRewardText8	[보스] {0}을 처치 후 토벌보상으로, {1}을 획득하였습니다.
		uiMailboxRewardText9	[보스] {0}을 처치 후 발견보상으로, {1}을 획득하였습니다.

		// 메시지 보상 종류
		public static final short MESSAGE_REWARD_CATEGORY_EVENT			= 1; // 이벤트
		public static final short MESSAGE_REWARD_CATEGORY_INVESTI		= 2; // 조사
		public static final short MESSAGE_REWARD_CATEGORY_EXTEND		= 3; // 확장전
		public static final short MESSAGE_REWARD_CATEGORY_FRIEND		= 4; // 친구 선물
		public static final short MESSAGE_REWARD_CATEGORY_QUICK_PVP		= 5; // 빠른 PVP
		public static final short MESSAGE_REWARD_CATEGORY_DISPATCH		= 6; // 파견
		public static final short MESSAGE_REWARD_CATEGORY_RAID_JOIN		= 7; // 레이드 보스 참여 보상
		public static final short MESSAGE_REWARD_CATEGORY_RAID_SUPPRESS	= 8; // 레이드 보스 토벌 보상
		public static final short MESSAGE_REWARD_CATEGORY_RAID_FIND		= 9; // 레이드 보스 발견 보상

		// 보상 타입
		public static final short MESSAGE_REWARD_TYPE_ITEM				= 1; // 아이템
		public static final short MESSAGE_REWARD_TYPE_KINA				= 2; // 키나
		public static final short MESSAGE_REWARD_TYPE_POWERSHARD		= 3; // 봉혼석
		public static final short MESSAGE_REWARD_TYPE_CASH				= 4; // 캐쉬
		public static final short MESSAGE_REWARD_TYPE_NULL				= 5;
		*/

		return Localization.Get("uiMailboxRewardText" + msgCategory.ToString());
	}

	string GetRewardMessageTitle(int msgCategory, int keyField, int rewardType, int rewardItemId, int amount)
	{
		string rewardMessageString = string.Empty;
		//int key = (keyField == null || keyField.Count == 0) ? 100 : keyField.ToArray()[0];
		int key = keyField;

		switch(msgCategory)
		{
		case 2:
			rewardMessageString = string.Format(GetRewardMessageTemplateByMsgCategory(msgCategory), TextController.GetRegionName(key), TextController.GetItemName(rewardItemId));
			break;
		case 3:
			rewardMessageString = string.Format(GetRewardMessageTemplateByMsgCategory(msgCategory), TextController.GetRegionName(key), TextController.GetItemName(rewardItemId));
			break;
		case 5:
			rewardMessageString = string.Format(GetRewardMessageTemplateByMsgCategory(msgCategory), TextController.GetItemName(rewardItemId));
			break;
		case 6:
			rewardMessageString = string.Format(GetRewardMessageTemplateByMsgCategory(msgCategory), TextController.GetRegionName(key), TextController.GetItemName(rewardItemId));
			break;
		case 7:
			rewardMessageString = string.Format(Localization.Get("uiMailboxRewardText7"), TextController.GetBossName(key));
			//return string.Format(GetRewardMessageTemplateByMsgCategory(msgCategory), TextController.GetBossName(key), TextController.GetItemName(rewardItemId));
			break;
		case 8:
			if (rewardType == 5)
				rewardMessageString = string.Format(Localization.Get("uiMailboxRewardText8a"), TextController.GetBossName(key));
			else
				rewardMessageString = string.Format(GetRewardMessageTemplateByMsgCategory(msgCategory), TextController.GetBossName(key), TextController.GetItemName(rewardItemId));
			break;
		case 9:
			rewardMessageString = string.Format(GetRewardMessageTemplateByMsgCategory(msgCategory), TextController.GetBossName(key), amount);
			break;
		}

		return rewardMessageString;
	}
}